Nepal - Nested Data Parallelism in Haskell

نویسندگان

  • Manuel M. T. Chakravarty
  • Gabriele Keller
  • Roman Lechtchinsky
  • Wolf Pfannenstiel
چکیده

This paper dis usses an extension of Haskell by support for nested data-parallel programming in the style of the spe ialpurpose language Nesl. More pre isely, the extension onsists of a parallel array type, array omprehensions, and a set of primitive parallel array operations. This extension brings a hitherto unsupported style of parallel programming to Haskell. Moreover, nested data parallelism should re eive wider attention when available in a standardised language like Haskell. This paper outlines the language extension and demonstrates its usefulness with two ase studies.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Harnessing the Multicores: Nested Data Parallelism in Haskell

If you want to program a parallel computer, a purely functional language like Haskell is a promising starting point. Since the language is pure, it is by-default safe for parallel evaluation, whereas imperative languages are by-default unsafe. But that doesn’t make it easy! Indeed it has proved quite difficult to get robust, scalable performance increases through parallel functional programming...

متن کامل

A Tutorial on Parallel and Concurrent Programming in Haskell

This practical tutorial introduces the features available in Haskell for writing parallel and concurrent programs. We first describe how to write semi-explicit parallel programs by using annotations to express opportunities for parallelism and to help control the granularity of parallelism for effective execution on modern operating systems and processors. We then describe the mechanisms provid...

متن کامل

Exploiting Implicit Parallelism in Domain-Specific Languages

In the recent years hardware evolution shifted from increasing execution speed to increasing the number of available execution units. As the aggregate computing power increases, the problem is how to use it efficiently: instead of running in a sequential manner, as before, software has to execute in separate tasks, each running in parallel on an execution unit. The dominating paradigm is explic...

متن کامل

A Language for Nested Data Parallel Design-space Exploration on GPUs

Graphics Processing Units (GPUs) o er potential for very high performance; they are also rapidly evolving. Obsidian is an embedded language (in Haskell) for implementing high performance kernels to be run on GPUs. We would like to have our cake and eat it too; we want to raise the level of abstraction beyond CUDA code and still give the programmer control over the details relevant kernel perfor...

متن کامل

Work E cient Higher-Order Vectorisation (Unabridged)

Existing approaches to higher-order vectorisation, also known as flattening nested data parallelism, do not preserve the asymptotic work complexity of the source program. Straightforward examples, such as sparse matrix-vector multiplication, can suffer a severe blow-up in both time and space, which limits the practicality of this method. We discuss why this problem arises, identify the mis-hand...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2001